There are many commercially available website building systems and other interactive application building tools that can be used to create and edit websites and other on-line applications. End users can access such websites using client software on a variety of different platforms such as regular personal computers, smart-phones, tablets and other desktop or mobile devices.
These website building systems can come in different configurations such as fully on-line website building systems which are hosted on a server or servers connected to the internet and which are accessed using internet communication protocols such as hypertext transfer protocol (HTTP). The creation, editing and deployment of these website building systems are all performed on-line working directly with the servers.
Website building systems can also be partially online or sometimes even fully offline. For a partially online system, the website editing is performed locally on the user's machine and is later uploaded to a central server or servers for deployment. Once uploaded, these website building systems behave in the same way as the full on-line website building systems.
Website building systems have internal data architecture in order to organize data and elements within the system. This architecture may be different from the external view of the site in question as seen by the user and may also differ from the way typical hypertext markup language (HTML) pages are sent to the browser. For example, the internal data architecture can contain additional properties for each element on the page (creator, creation time, access permissions, links to templates etc.) which are essential for editing and maintaining the site within the website building system, but are not externally visible to the end-user (or even to some editing users). A typical architecture for a website building system based site may consist of pages containing components (e.g. shape components, picture components, text components, single- and multi-page containers containing mini-pages, etc.)
Components may be content-less such as a star-shape which does not have any internal content (through it has color, size, position and some other attributes) or may have internal content, such as a text paragraph component, whose internal content includes the displayed text, as well as font, formatting and layout information. This content may, of course, vary from one instance of the text paragraph component to another.
A designer using such a website building system may design a new creation from scratch (starting with a blank screen), or may rely on predefined application templates created by the designer himself or herself, by the system creator, or by the designer community. The website building system may support templates which are mere component collections, complete pages (or mini pages) or even sets of pages and complete web sites.
When an application template is provided, the designer can customize it at will—adding, removing or modifying all elements of the template to create his or her version of the template. Such customization may be implemented by creating a modified version of the template (which is distinct and separate from the template). Alternatively, the website building system may apply the customizations through an inheritance-type mechanism which retains the link to the original template, and would thus reflect later changes made to the template.
Website building systems can also be extended using third party applications and components embedded in them. Such third party applications may be included in the website building system design environment or may be purchased (or otherwise acquired) separately through a number of distribution mechanisms, such as from an application store (AppStore) integrated into the website building system, or from a separate, web-based or standalone application repository (or AppStore) operated by the website building systems (WBS) vendor or by another entity. Third party applications may be also be obtained directly from the third party application vendor (through an AppStore or not)—which would provide an actual installation module, or just an activation or access code.
A third party application may include any combination of front-end (display) elements with back-office elements (which are not a part of the visual web site display). The third party application may be entirely back-office (i.e. include no display element), entirely front-end (i.e. be activated only within the context of web site use) or be a combination of the two.
The back-office element of the third party application may include functions such as data-base communication, external update options etc. For example, a blog third party application might include a back-office element which allow updates to be received from non-human sources (e.g. a RSS news feed from a major news service), as well as from human sources not related to the web site (e.g. a stand-alone smart-phone application which allows submission of blog entries).
The integration of the visual element of a third party application into the containing web site can be done in a number of ways. Widget-type third party applications can be embedded inside a web site page as a component whereas section-type third party applications can be added to the web site as an additional page or pages.
Furthermore third party applications (both widget and section) can be single-page third party applications or multi-page third party applications (which have internal mini-pages represented as an internal URL structure). A system may implement any or all of the four possible combinations (widget or section, single-page or multi-page).
Multi-page third party applications usually provide a default “landing” mini-page, which could be an opening page, a specific internal mini-page (e.g. the most recent blog entry in a blog third party application), a mini-page selection screen or some other mini-page.
The use of third party applications in website building system-based web sites is done through third party application instances. The website building system may support multiple uses of third party applications at a number of levels, such as allowing a single third party application instance in the entire web site; allowing instances of multiple third party applications to be created inside the web site (but not more than one instance of any given third party application) and allowing multiple instances of multiple third party applications to be created, but no more than one instance per a given page. It may also allow multiple instances per page of component third party applications but not of section third party applications and may also allow multiple instances of multiple third party applications to be created without any limitations on the amount, multiplicity or location of the third party applications instances.
The third party application instance may have instance-specific content. For example, an e-Shop third party application may have a product database associated with the specific instance, which is different from the product database associated with other instances of the same e-Shop third party application (in the same site or other sites).
For the purposes of discussion, the web site page (or mini-page) containing the third party application and its mini-pages or elements (i.e. the “wrapper page”) shall be known as the containing web page and to the entire web site as the main site. The integrated page shown to the user—including the main page and an embedded TPA mini-page/component—shall be referred to as combined page. For section type third party applications, the “virtual page” containing the third party application would serve as the containing web page.
Third party applications are usually deployed either on the website building system vendor servers, on the third party application vendor server, on external (4th party) servers, or any combination thereof. A third party application may also include elements actually running on the end user machine, such as a statically-installed browser extension or a dynamically run JavaScript component running inside the website building system client-side code as is illustrated in FIG. 1 to which reference is now made.
The website building system vendor's servers act as a contact point for the end-user, and responds to requests (possibly connecting to the third party applications vendors' servers to receive required information). The website building system may create direct connections (as required) between the client computer and the third party application vendors' servers, for example when video streaming is required.
Included third party application instances may have their own internal content, similar to the way in which regular components include internal content. The third party application may manage this content independently of the website building system and of the website generated using the website building system as is illustrated in FIG. 2 to which reference is now made. Multiple third party application instances (of single or multiple third party applications) may have shared content, e.g. two e-Shop instances in two separate web site pages may refer to the same product database.
The output from included third party applications may be integrated into the containing web page in a number of ways, such as:
Server Side Processing:
in this alternative as is illustrated in FIG. 3 to which reference is now made, third party application [a] (including design and display elements) and the user-specific third party application data [b] are merged by the third party application server code [c] running on the third party application vendors' server [d]. They are sent over the communication medium [e] to the website building system server code [f] which merges them with the containing web page information [g] and then sends them for display on the user client station [h].
Client-Side Processing:
in this alternative as is illustrated in FIG. 4 to which reference is now made, third party application [a] (including design and display elements) and the user-specific third party application data [b] are merged by the third party application server code [c] running on the third party application vendors' server [d]. They are sent over the communication medium [e] to a client side processing component [h]. The website building system server code [f] sends the containing web page information [g] to this client side processing component [h]. The client side processing component [h] performs the merging of the two source of information and presents a unified application to the browser (or other client agent) [i].
iFrame Inclusion:
in this alternative as is illustrated in FIG. 5 to which reference is now made, the third party application [a] (including design and display elements) and the user-specific third party application data [b] are merged by the third party application server code [c] running on the third party application vendors' server [d]. They are sent over the communication medium [e] to a browser-based application [h] running inside the user agent (e.g. a web browser) [i]. The website building system server code [f] sends the containing web page information [g] to this browser-based application [h]. The containing web page is realized as a web page which contains one or more iframe directives which include the content from the third party application server [d]. Additional and alternative methods may be applicable as well.